-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

=============================================================================
FreeBSD-SA-05:20.cvsbug                                     Security Advisory
                                                          The FreeBSD Project

Topic:          Race condition in cvsbug

Category:       contrib
Module:         contrib_cvs
Announced:      2005-09-07
Credits:        Marcus Meissner
Affects:        All FreeBSD releases
Corrected:      2005-09-07 13:43:05 UTC (RELENG_6, 6.0-BETA5)
                2005-09-07 13:43:23 UTC (RELENG_5, 5.4-STABLE)
                2005-09-07 13:43:36 UTC (RELENG_5_4, 5.4-RELEASE-p7)
                2005-09-09 19:26:19 UTC (RELENG_5_3, 5.3-RELEASE-p22)
                2005-09-07 13:44:06 UTC (RELENG_4, 4.11-STABLE)
                2005-09-07 13:44:20 UTC (RELENG_4_11, 4.11-RELEASE-p12)
                2005-09-09 19:24:22 UTC (RELENG_4_10, 4.10-RELEASE-p18)
CVE Name:       CAN-2005-2693

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
<URL:http://www.freebsd.org/security/>.

0.   Revision History

v1.0 2005-07-07  Initial release.
v1.1 2005-07-09  Additional related issues fixed in FreeBSD 4.10 and 5.3.

I.   Background

cvsbug(1) is a utility for reporting problems in the CVS revision
control system.  It is based on the GNATS send-pr(1) utility.

II.  Problem Description

A temporary file is created, used, deleted, and then re-created with
the same name.  This creates a window during which an attacker could
replace the file with a link to another file.  While cvsbug(1) is based
on the send-pr(1) utility, this problem does not exist in the version
of send-pr(1) distributed with FreeBSD.

In FreeBSD 4.10 and 5.3, some additional problems exist concerning
temporary file usage in both cvsbug(1) and send-pr(1).

III. Impact

A local attacker could cause data to be written to any file to which
the user running cvsbug(1) (or send-pr(1) in FreeBSD 4.10 and 5.3) has
write access.  This may cause damage in itself (e.g., by destroying
important system files or documents) or may be used to obtain elevated
privileges.

IV.  Workaround

Do not use the cvsbug(1) utility on any system with untrusted users.

Do not use the send-pr(1) utility on a FreeBSD 4.10 or 5.3 system with
untrusted users.

V.   Solution

Perform one of the following:

1) Upgrade your vulnerable system to 4-STABLE or 5-STABLE, or to the
RELENG_5_4, RELENG_5_3, RELENG_4_11, or RELENG_4_10 security branch
dated after the correction date.

2) To patch your present system:

The following patches have been verified to apply to FreeBSD 4.10, 
4.11, 5.3, and 5.4 systems.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

[FreeBSD 4.10]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug410.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug410.patch.asc

[FreeBSD 5.3]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug53.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug53.patch.asc

[FreeBSD 4.11 and 5.4]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug.patch.asc

b) Execute the following commands as root:

# cd /usr/src
# patch < /path/to/patch
# cd /usr/src/gnu/usr.bin/cvs/cvsbug
# make obj && make depend && make && make install
# cd /usr/src/gnu/usr.bin/send-pr
# make obj && make depend && make && make install

VI.  Correction details

The following list contains the revision numbers of each file that was
corrected in FreeBSD.

Branch                                                           Revision
  Path
- -------------------------------------------------------------------------
RELENG_4
  src/contrib/cvs/src/cvsbug.in                               1.1.1.1.2.4
RELENG_4_11
  src/UPDATING                                             1.73.2.91.2.13
  src/sys/conf/newvers.sh                                  1.44.2.39.2.16
  src/contrib/cvs/src/cvsbug.in                           1.1.1.1.2.3.2.1
RELENG_4_10
  src/UPDATING                                             1.73.2.90.2.19
  src/sys/conf/newvers.sh                                  1.44.2.34.2.20
  src/contrib/cvs/src/cvsbug.in                           1.1.1.1.2.2.6.2
  src/gnu/usr.bin/send-pr/send-pr.sh                        1.13.2.13.2.1
RELENG_5
  src/contrib/cvs/src/cvsbug.in                               1.1.1.3.2.1
RELENG_5_4
  src/UPDATING                                            1.342.2.24.2.16
  src/sys/conf/newvers.sh                                  1.62.2.18.2.12
  src/contrib/cvs/src/cvsbug.in                               1.1.1.3.6.1
RELENG_5_3
  src/UPDATING                                            1.342.2.13.2.25
  src/sys/conf/newvers.sh                                  1.62.2.15.2.27
  src/contrib/cvs/src/cvsbug.in                               1.1.1.3.4.1
  src/gnu/usr.bin/send-pr/send-pr.sh                             1.35.6.1
RELENG_6
  src/contrib/cvs/src/cvsbug.in                               1.1.1.3.8.1
- -------------------------------------------------------------------------

VII. References

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2693

The latest revision of this advisory is available at
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:20.cvsbug.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (FreeBSD)

iD8DBQFDIeKFFdaIBMps37IRApOpAJ9RRKHLnuyFOuaM1pN09Sn3Rysv4gCgiF+/
QJ1c9krguLbujP/YL4LaDP0=
=5W0R
-----END PGP SIGNATURE-----
